package week2;

import java.util.*;

public class Day2 {
    //1.求最小公倍数
    public static void main1(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            long a = in.nextInt();
            long b = in.nextInt();
            long s=a*b;
            long sum = b;
            //1.求最大公因数
            while(sum!=0) {
                sum=a%b;
                a=b;
                b=sum;
            }
            //2.求最小公倍数
            System.out.println(s/a);
        }
    }
    //2.数组中的最长连续子序列
    public static void main(String[] args) {
        int[] arr = {7,8,2,6,1,1,7,2,4,3,4,7,5,6,8,2};
        int a = MLS(arr);
        System.out.println(a);
    }
    public static int MLS (int[] arr) {
        // write code here
        Arrays.sort(arr);
        int lens = 0;
        int len = 0;
        int tmp=0;
        int right=0;
        while(right < arr.length) {
            if(tmp==0) {
                tmp=arr[right];
                right++;
                len++;
            }else {
                if(arr[right]-tmp == 0) {
                    right++;
                }else if(arr[right]-tmp == 1) {
                    len++;
                    tmp=arr[right];
                    right++;
                }else {
                    lens = Math.max(lens,len);
                    len=0;
                    tmp=0;
                }
            }
        }
        lens=Math.max(len,lens);
        return lens;
    }



    //3.字母收集
    public static void main3(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            //n行m列
            int n = in.nextInt();
            int m = in.nextInt();
            String[] tmp = new String[n];
            char[][] arr = new char[n][m];
            for(int i=0;i<n;i++) {
                tmp[i]=in.next();
            }
            for(int i=0;i<n;i++) {
                for(int j=0;j<m;j++) {
                    arr[i][j]=tmp[i].charAt(j);
                }
            }
            //初始化
            int[][] dp = new int[n][m];
            Map<Character,Integer> map = new HashMap<>();
            map.put('l',4);
            map.put('o',3);
            map.put('v',2);
            map.put('e',1);
            dp[0][0]=map.getOrDefault(arr[0][0],0);

            for(int i=1;i<m;i++) dp[0][i]  = dp[0][i-1]+map.getOrDefault(arr[0][i],0);
            for(int i=1;i<n;i++) dp[i][0]  = dp[i-1][0]+map.getOrDefault(arr[i][0],0);
            for(int i=1;i<n;i++) {
                for(int j=1;j<m;j++) {
                    dp[i][j]=map.getOrDefault(arr[i][j],0)+Math.max(dp[i-1][j],dp[i][j-1]);
                }
            }
            System.out.println(dp[n-1][m-1]);
        }
    }
}
